package com.example.demo.config;

import com.example.demo.interceptor.UserLoginCheckInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;


@Slf4j
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

    @Autowired
    private UserLoginCheckInterceptor loginCheckInterceptor;


    protected void addInterceptors(InterceptorRegistry registry){
        log.info("开始注册自定义拦截器...");
        registry.addInterceptor(loginCheckInterceptor)
                .addPathPatterns("/polycystic/**")
                .excludePathPatterns("/polycystic/user/login")
                .excludePathPatterns("/polycystic/user/register")
                .excludePathPatterns("/polycystic/admin/login")
                .excludePathPatterns("/polycystic/admin/register");
    }

    @Override
    protected void addCorsMappings(CorsRegistry registry) {
        log.info("开始跨域");
        super.addCorsMappings(registry);
        //设置允许跨域的路径
        registry.addMapping("/**")
                //设置允许跨域请求的域名
                .allowedOrigins("http://localhost:8080")
                //是否允许证书 不再默认开启
                .allowCredentials(true)
                //设置允许的方法
                .allowedMethods("*")
                //跨域允许时间
                .maxAge(3600);
    }
}
